
/* 
** 封装axios   
** 封装get、post、put、delete
*/

import axios from "axios";


/* 设置公共地址前缀 */
export const serverUrl = 'http://81.68.181.153:8011';//后端给的请求地址的前缀


const instance = axios.create({
    baseURL: serverUrl,//请求的基地址
    timeout: 5000 //网络请求超时时间
});


/* 拦截器 ----------------------------------------------------------------------------------------*/

//请求之前执行

instance.interceptors.request.use((config) => {
    // 写一些 请求之前要做的事


    return config;
}, (error) => {
    // 请求出错的处理
});

//返回数据的时候执行


instance.interceptors.response.use((response) => {
    // 写一些 请求之前要做的事


    return response.data; //注意 看后端返回的数据是不是在data里面
});


/**
 *  
 * @param {*} url  请求的地址
 * @param {*} params  请求参数
 * @param {*} data  请求参数
 * @returns 
 */


export function get(url, params) {
    return instance.get(url, {
        params,
    })
}

// 简写的get封装--> export const get = (url, params) => instance.get(url, { params})

export const post = (url, data) => instance.post(url, data);
export const put = (url, data) => instance.put(url, data); //put delete这两个请求很少用
export const del = (url, data) => instance.delete(url);




/* 有时候 会遇见不同的post请求头不一样   参数里面增加请求头即可

    headers: { 输json数据时
      'Content-Type': 'application/json'
    },

     headers: {传输文件流,表单Form Data 数据时
    'Content-Type': 'multipart/form-data';
    },
*/



export default instance;